package xin.qixia.robot.ding.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;

/**
 * @author wangkaixin
 * @date 2025/5/26 8:59
 */
@Data
public class DingTalkMessage {

    /**
     * 机器人账号
     */
    private String robotAccount;

    /**
     * 机器人名称
     */
    private String robotName;

    /**
     * 消息发送平台
     */
    private String senderPlatform;

    /**
     * 会话ID
     */
    private String conversationId;

    /**
     * 被@人的信息
     */
    private List<DingTalkMessageAtUsers> atUsers;

    /**
     * 加密的机器人所在的企业corpId
     */
    private String chatbotCorpId;

    /**
     * 加密的机器人ID
     */
    private String chatbotUserId;

    /**
     * 加密的消息ID
     */
    private String msgId;

    /**
     * 发送者昵称
     */
    private String senderNick;

    /**
     * 是否为管理员
     */
    private Boolean isAdmin;

    /**
     * 企业内部群中@该机器人的成员 userId
     */
    private String senderStaffId;

    /**
     * 当前会话的Webhook地址过期时间
     */
    private Long sessionWebhookExpiredTime;

    /**
     * 消息的时间戳，单位毫秒
     */
    private Long createAt;

    /**
     * 企业内部群的发送者当前群的企业corpId
     */
    private String senderCorpId;

    /**
     * 会话类型(0单聊 1群聊)
     */
    private String conversationType;

    /**
     * 加密的发送者ID
     */
    private String senderId;

    /**
     * 群聊时才有的会话标题
     */
    private String conversationTitle;

    /**
     * 是否在@列表中
     */
    private Boolean isInAtList;

    /**
     * 当前会话的Webhook地址
     */
    private String sessionWebhook;

    /**
     * 消息文本
     */
    private DingTalkMessageText text;

    /**
     * 机器人编码
     */
    private String robotCode;

    /**
     * 消息类型
     * text：文本消息
     * richText：富文本消息
     * picture：图片消息
     * audio：语音消息
     * video：视频消息
     * file：文件消息
     */
    @JsonProperty("msgtype")
    private String msgType;
}
